<template>
<!--,height: daibanHeight-->
	<div id="todo-box" :class="{'inlineblock':true,'right-menu':true,}" :style="{zIndex: 1000}">
		<div class="daibai-header">业务待办</div>
		<div class="daibai-content">
			<div class="row-one">
				<div style="overflow: auto;height: 100%;padding-top: 10px;" >
					<div  @click = "getNoticeAll" :class = "{'isCurrentItem':noticeShow,'daibanitem':true,'daibanitemgroup':true}" v-if="noticeCount != 0">
						<div class="tip inlineblock" style="position: absolute;left: calc(50% + 6px);">
							{{noticeCount}}
						</div>
						<img src="../assets/img/task.png" style="width:50%;" />

						<br />
						<span>公告</span>
					</div>
					<div  @click = "getReviewAll" :class = "{'isCurrentItem':workFlowShow,'daibanitem':true,'daibanitemgroup':true}" >
						<div class="tip inlineblock" style="position: absolute;left: calc(50% + 6px);">
							{{totalCount}}
						</div>
						<img src="../assets/img/task.png" style="width:50%;" />

						<br />
						<span>流程审批</span>
					</div>
					<div  :class="{'active':index==activeIndex && !workFlowShow,'daibanitem':true,'daibanitemgroup':true}" v-for="(item,index) in daiban" :key="index" v-if="item.messageCount !=0 " @click="readToDoMessageList(item,index)">
						<div class="tip inlineblock" style="position: absolute;left: calc(50% + 6px);">
							{{item.messageCount}}
						</div>
						<img :src="daibanconf[item.messageGroup].src" style="width:50%;" />

						<br />
						<span>{{item.modelName}}</span>
					</div>
				</div>
			</div>
			<div class="row-two"  v-if = "noticeShow && noticeCount != 0"  style="padding-left:0">
				<!--.to-title-->
				<div class="daibai-header">公告列表
					<span style="color:red;">（{{noticeCount}}）</span>
				</div>
				<div style="overflow: auto;height: calc(100% - 40px);padding: 10px 13px;">
					<ul class="daibanitem" style="width:100%">
						<li v-for="(item1,index) in noticeList" @click = "noticeDetail(item1)" :key = "index" style="white-space: normal;padding: 5px 0px;border-bottom: 1px solid #ccc;text-align: left;">
							<p style = "word-break:break-all;"><img src="../assets/img/shenhe.png" style="width:20px;vertical-align: middle;" /> {{item1.title}}</p>
							<p style="text-align: right;padding: 8px;color:rgba(0,0,0,0.5)"> 创建日期:{{item1.createTime ==undefined || item1.createTime == ''
                || item1.createTime ==null ? "---":item1.createTime.split('.')[0]}}</p>

						</li>
					</ul>
				</div>
			</div>
			<div class="row-two"  v-if = "workFlowShow"  style="padding-left:0">
				<!--.to-title-->
				<div class="daibai-header">待审项目
					<span style="color:red;">（{{totalCount}}）</span>
				</div>
				<div style="overflow: auto;height: calc(100% - 40px);padding: 10px 13px;">
					<ul class="daibanitem" style="width:100%">
						<li v-for="(item1,index) in daiban1" @click="openpage(item1)" :key = "index" style="white-space: normal;padding: 5px 0px;border-bottom: 1px solid #ccc;text-align: left;">
							<p><img src="../assets/img/shenhe.png" style="width:20px;vertical-align: middle;" /> {{item1.businessName}}:【{{item1.name}}】需要您审批</p>
							<p style="text-align: right;padding: 8px;color:rgba(0,0,0,0.5)"> {{item1.lastprocesstime}}</p>

						</li>
					</ul>
				</div>
			</div>
			<div class="row-two" v-if = "workFlowShow1" style="padding-left:0">
				<div class="daibai-header">待办项目
					<span style="color:red;">（{{messageListCount}}）</span>
					<el-button type="danger" icon="el-icon-delete" circle size="mini" style="transform: translate(105px);height: 26px;width: 26px;padding: 0px;" @click="delAllTodo"></el-button>
				</div>

				<div style="overflow: auto;height: calc(100% - 40px);padding: 10px 13px;">
					<ul class="daibanitem" style="width:100%">
						<li v-for="(item1,index) in daibanItem" @click="openpage1(item1,index)" :key= "index" style="white-space: normal; padding: 5px 0px;border-bottom: 1px solid #ccc;text-align: left;">

							<p><img src="../assets/img/shenhe.png" style="width:20px;vertical-align: middle;" /> {{item1.information}}</p>
							<p style="text-align: right;padding: 8px;color:rgba(0,0,0,0.5)"> {{item1.createTime.slice(0, item1.createTime.indexOf("."))}}</p>
						</li>

					</ul>
				</div>

			</div>
		</div>
		<el-dialog :visible.sync="noticeDialogShow" width="65%" :show-close='false' :closeOnClickModal='false' append-to-body class="getLaboratoryShow">
			<span slot="title" class="dialog-title">
				公告
			    <el-button @click="noticeDialogShow = false" size="mini" class="popupClose">关闭</el-button>
			</span>
			<el-form label-width="110px" :inline="false" class="demo-form-inline noticeForm" :model="noticeForm" ref="noticeForm">
				<el-form-item label="标题" prop="title" style="width:100%">
						<el-col :span="22">
							<el-input placeholder="标题" size="mini" v-model="noticeForm.title" disabled ></el-input>
						</el-col>
					</el-form-item>
				<el-form-item label="内容" prop="content" style="width:100%;">
					<el-col :span="22">
						<el-input placeholder="内容" type="textarea" size="mini" v-model="noticeForm.content" disabled></el-input>
					</el-col>
				</el-form-item>
			</el-form>
      <span slot="footer" class="dialog-footer">
        {{noticeForm.author}}&nbsp;&nbsp;&nbsp;
        {{noticeForm.createTime=="" || noticeForm.createTime== null || noticeForm.createTime== undefined?" ":noticeForm.createTime.slice(0, noticeForm.createTime.indexOf("."))}}
      </span>

		</el-dialog>

	</div>
</template>

<script>
import $ from 'jquery'
import { mapState } from 'vuex'

export default {
	name: 'App',
	data() {
		return {
			noticeCount:0,
			noticeDialogShow:false,
			noticeForm:{
				id:"",
				title:"",
				content:"",
			},
			groupListCount: 0,
			messageListCount: 0,
			yibanListCount: 0,
			messageGroup: null,//业务代办组标识
			activeIndex: null,
			daibanconf: {
				1002: {
					name: '任务管理',
					src: require("../assets/img/task.png")
				},
				1003: {
					name: '样品管理',
					src: require("../assets/img/caiyang.png")
				},
				1004: {
					name: '样品检测',
					src: require("../assets/img/jiance.png")
				},
				1005: {
					name: '报告管理',
					src: require("../assets/img/baogao.png")
				},
				1006: {
					name: '用户管理',
					src: require("../assets/img/shenhe.png")
				},
				1007: {
					name: '仪器管理',
					src: require("../assets/img/get.png")
				},
				1008: {
					name: '供应商管理',
					src: require("../assets/img/baogao.png")
				},
				1009: {
					name: '物资管理',
					src: require("../assets/img/baogao.png")
				},
				1010: {
					name: '质控管理',
					src: require("../assets/img/baogao.png")
				},
				1011: {
					name: '系统维护（系统管理）',
					src: require("../assets/img/baogao.png")
				},
				1012: {
					name: '技术标准（系统管理）',
					src: require("../assets/img/baogao.png")
				},
				1013: {
					name: '实验室管理（标准管理）',
					src: require("../assets/img/baogao.png")
				},
				1014: {
					name: '系统维护（标准管理）',
					src: require("../assets/img/baogao.png")
				},
				1015: {
					name: '标准库（标准管理）',
					src: require("../assets/img/baogao.png")
				},
				1016: {
					name: '质控标准（标准管理）',
					src: require("../assets/img/baogao.png")
				},


			},
			src: require("../assets/img/task.png"),

			daiban: [],
			daibanload: false,
			daibanItem: [],
			daibanitemload: false,
			noticeList: [],
			yibanload: false,
			yiban: [],
			// totalCount: 0,
			workFlowShow: false, // 流程审批
			workFlowShow1:false,
			noticeShow:true,
			// 流程审批
			routerObj: {
				"t_method": {
					nowpage: 'methodmanagement',
					topmenu: '系统管理',
					name: '检测方法'
				},
				"t_equipment_type": {
					nowpage: 'equipStandar',
					topmenu: '系统管理',
					name: '仪器标准'
				},
				"t_report_prepare": {
					nowpage: 'reportReview',
					topmenu: '报告管理',
					name: '报告审核'
				},
				"t_supplier": {
					nowpage: 'suppliermanagementt',
					topmenu: '资源管理',
					name: '供应商'
				},
				"t_subcontractor": {
					nowpage: 'subcontractor',
					topmenu: '资源管理',
					name: '分包商'
				},

				"t_detectability": {
					nowpage: 'ability',
					topmenu: '系统管理',
					name: '能力参数'
				},
				"t_maintenance_record02": {
					nowpage: 'yiqijianding',
					topmenu: '资源管理',
					name: '检定校准'
				},
				"t_maintenance_record03": {
					nowpage: 'qijianhecha',
					topmenu: '资源管理',
					name: '期间核查'
				},

				"t_material_outstock": {
					nowpage: 'chuKuShengPi',
					topmenu: '资源管理',
					name: '出库登记'
				},
				"t_standard": {
					nowpage: 'standardmanagement',
					topmenu: '系统管理',
					name: '评价标准'
				},
				"c_method": {
					nowpage: 'sysmethodmanagement',
					topmenu: '标准管理',
					name: '检测方法'
				},
				"c_equipment_type": {
					nowpage: 'sysequipStandar',
					topmenu: '标准管理',
					name: '仪器标准'
				},
				"c_detectability": {
					nowpage: 'sysability',
					topmenu: '标准管理',
					name: '能力参数'
				},
				"c_standard": {
					nowpage: 'sysstandardmanagement',
					topmenu: '标准管理',
					name: '评价标准'
				},
				//================================================
				"t_test_check": {
					nowpage: 'mygroupcheck',
					topmenu: '检测管理',
					name: '数据校核'
				},
				"t_sample_verify": {
					nowpage: 'mygroupsanjishenhe',
					topmenu: '检测管理',
					name: '数据审核'
				},
				"t_task_plan": {
					nowpage: 'detectionplan',
					topmenu: '检测管理',
					name: '任务模板创建'
				},
				"t_task": {
					nowpage: 'newtaskmanage',
					topmenu: '检测管理',
					name: '任务下达'
				},

				"t_report_prepare_01 ": {
					nowpage: 'qijianhecha',
					topmenu: '报告管理',
					name: '报告签发'
				}

			},
			// 待办
			routerObj1: {
				"t_equip_record_01": {
					nowpage: 'yiqibaoyang',
					topmenu: '资源管理',
					name: '仪器保养'
				},
				"t_equip_record_02": {
					nowpage: 'yiqijianding',
					topmenu: '资源管理',
					name: '检定校准'
				},
				"t_equip_record_03": {
					nowpage: 'qijianhecha',
					topmenu: '资源管理',
					name: '期间核查'
				},
				"t_report_prepare_01 ": {
					nowpage: 'reportIssue',
					topmenu: '报告管理',
					name: '报告签发'
				},
				"t_report_prepare_02": {
					nowpage: 'reportlist',
					topmenu: '报告管理',
					name: '报告分发'
				},
				"t_task_plan": {
					nowpage: 'detectionplan',
					topmenu: '检测管理',
					name: '任务模板创建'
				},
				"t_task": {
					nowpage: 'newtaskmanage',
					topmenu: '检测管理',
					name: '任务下达'
				},
				"t_sample_resist": {
					nowpage: 'sampleregistration',
					topmenu: '检测管理',
					name: '采样登记'
				},
				"t_sample_accept": {
					nowpage: 'samplereception',
					topmenu: '检测管理',
					name: '样品接收'
				},
				"t_sample_receive": {
					nowpage: 'yangpinlingqu',
					topmenu: '检测管理',
					name: '样品领取'
				},
				"t_test_enter": {
					nowpage: 'jiancejieguo',
					topmenu: '检测管理',
					name: '数据录入'
				},
				"t_test_check": {
					nowpage: 'mygroupcheck',
					topmenu: '检测管理',
					name: '数据校核'
				},
				"t_sample_verify": {
					nowpage: 'mygroupsanjishenhe',
					topmenu: '检测管理',
					name: '数据审核'
				}
			}
		}
	},
	props: [],
	computed: {
		daibanHeight() {
			// return window.innerHeight - 50+'px'
			return window.innerHeight - 108 + 'px'
		},
		...mapState(['rightmenuStruchFlag', 'daiban1', 'totalCount', 'daiban1load','nowpage','pageName','menuName']),
	},
	watch: {
		totalCount(newer, older) {
			if (this.totalCount <= 0) {
				this.$parent.getBellSign()
			}
		},
		groupListCount(newer, older) {
			if (this.groupListCount <= 0) {
				this.$parent.getBellSign()
			}
		}

	},
	created() {
		//	this.getWorkflowList()
		this.init(0)
		this.readToDoMessageGroupList()
		this.readyibanList();
		this.selActiveNotices();
	},
	components: {

	},

	methods: {
		getReviewAll(){
			this.workFlowShow = true;
			this.workFlowShow1 = false;
			this.noticeShow = false;
		},
		getNoticeAll(){
			this.workFlowShow = false;
			this.workFlowShow1 = false;
			this.noticeShow = true;
		},
    // 公告
		selActiveNotices(){
			this.$http({
				method: 'post',
				apiUrl: '/standard/selActiveNotices.htm',
				params: {exDate: ""},
				isJson: false,
			}).then(res => {
					if (res.code === 0) {
						this.noticeCount = res.data.length;
						this.noticeList = res.data;
            if(this.noticeCount == 0){
             this.getReviewAll()
            }

					}
			}, )
		},
		noticeDetail(item){
			this.noticeDialogShow = true;
			for(var i in item){
				this.noticeForm[i] = item[i]
			}
		},

		// 当前某个分组当前人所有待办转已办：/message/toDoToReadList.htm
		toDoToReadList() {
			return new Promise((resolve, reject) => {
				this.$http({
					method: 'post',
					apiUrl: '/message/toDoToReadList.htm',
					params: { messageGroup: this.messageItem.messageGroup },
					isJson: false,
				}).then(res => {
					if (res.code === 0) {
						resolve(res)
					} else {
						reject("err")
					}
				}, )
			})
		},
		delAllTodo() {
			this.$confirm('是否删除', '提示', {
				confirmButtonText: '确定',
				cancelButtonText: '取消',
				type: 'warning'
			}).then(() => {
				this.toDoToReadList().then(res => {
					this.daiban.splice(this.activeIndex, 1)
					this.activeIndex = -1;
					this.messageGroup = null;
					this.daibanItem.splice(0, this.daibanItem.length);
					this.messageListCount = 0;
					this.groupListCount = this.daiban.length
					this.readyibanList()
				}, err => {

				})

			}).catch(() => {
				this.$message({
				type: 'info',
				message: '已取消删除'
				});
			});


		},
		// 			当前待办转已办/message/toDoToRead.htm
		// 参数：待办id
		toDoToRead(id) {
			return new Promise((resolve, reject) => {
				this.$http({
					method: 'post',
					apiUrl: '/message/toDoToRead.htm',
					params: { id: id },
					isJson: false,
				}).then(res => {
					if (res.code === 0) {
						resolve(res)
					} else {
						reject("err")
					}
				}, )
			})
		},
		// delOneTodo(id){
		// 	this.toDoToRead(id).then(res=>{
		//
		// 	},err=>{
		//
		// 	})
		// },
		init(page) {
			// this.daiban1load = true;

			this.$store.dispatch('getWorkflowList', page).then(res => {
				// res.data.forEach((item, index) => {
				// 	item.id = item.businesskey
				// 	//							item.nowpage = this.routerObj["t_supplier"].nowpage[index]
				// 	//							item.topmenu =  this.routerObj["t_supplier"].topmenu[index]
				// })
				// this.daiban1 = res.data
				// this.totalCount = res.totalCount
				// this.daiban1load = false;
			})
		},
		//	获取审批流程函数
		// 			getWorkflowList(page) {
		// 				let params = {
		// 					type: 2,
		// 					page: page,
		// 					pagecount: 10000
		// 				};
		// 				// this.flowListCount = 0;
		// 				return new Promise((resolve, reject) => {
		// 					this.$http({
		// 						method: 'post',
		// 						apiUrl: '/workflow/getWorkflowList.htm',
		// 						params: params,
		// 						isJson: false,
		// 					}).then(res => {
		// 						if(res.code === 0) {
		// 							resolve(res)
		// 						} else {
		// 							reject("err")
		// 						}
		// 					}, )
		// 				})
		//
		// 			},
		//获取业务待办分类/message/readToDoMessageGroupList.htm
		readToDoMessageGroupList() {
			this.daibanload = true;
			this.$http({
				method: 'post',
				apiUrl: '/message/readToDoMessageGroupList.htm',
				params: null,
				isJson: false,
			}).then(res => {
				if (res.code === 0) {
					this.daiban = res.data
					this.daibanload = false;
					this.groupListCount = res.data.length;
				}
			}, )
		},
		//			获取待办列表：/message/readToDoMessageList.htm     参数：messageGroup
		readToDoMessageList(item, index) {
			this.noticeShow = false;
			this.workFlowShow = false;
			this.workFlowShow1 = true;

			this.activeIndex = index;
			this.daibanitemload = true;
			this.messageListCount = 0;
			this.messageItem = item;
			this.$http({
				method: 'post',
				apiUrl: '/message/readToDoMessageList.htm',
				params: {
					messageGroup: item.messageGroup
				},
				isJson: false,
			}).then(res => {
				if (res.code === 0) {
					this.daibanItem = res.data
					this.messageListCount = res.data.length;
					this.daibanitemload = false;
				}
			})
		},
		readyibanList() {
			this.yibanload = true;
			this.$http({
				method: 'post',
				apiUrl: '/message/readDoneMessageList.htm',
				params: {
					messageGroup: null
				},
				isJson: false,
			}).then(res => {
				if (res.code === 0) {
					this.yiban = res.data;
					this.yibanload = false;
					this.yibanListCount = res.data.length;
				}
			}, )
		},
		handleSizeChange(val) {
		},
		handleCurrentChange(val) {
			this.init(val - 1)
		},
		menustrutch() {
			this.$store.commit('changerightmenuStruchFlag')
		},
		dianjidaiban(index) {
			this.$store.commit('changetopmenu', index)
		},
		openpage: function(item) {
			this.$store.state.pageName = this.routerObj[item.businessType].name;
			this.$store.state.menuName = this.routerObj[item.businessType].topmenu;
			let modelData = JSON.parse(sessionStorage.getItem('modelDataJson'))
			let premodelData = JSON.parse(sessionStorage.getItem('premodelDataJson'))
			let topmenu;
			for (let i in modelData) {
				if (modelData[i].name == this.routerObj[item.businessType].topmenu) {

					topmenu = i
				}
			}
			let pageObj;
			for (let j of premodelData) {
				if (j.pageAddress == this.routerObj[item.businessType].nowpage) {
					pageObj = j
				}
			}
			this.selUserOpernationByModelId(pageObj).then(res => {
				sessionStorage.setItem("userOpernation", JSON.stringify(res.data))
				item.id = item.businesskey
				this.$store.commit('passItem', null)
				this.$store.commit('passItem', item)
				this.$store.commit('passDaibanItemShow', true)

				this.$store.commit('changenowpage', this.routerObj[item.businessType].nowpage);
				this.$store.commit('changetopmenu', topmenu)
			}).catch(err => {
				item.id = item.businesskey
				this.$store.commit('passItem', null)
				this.$store.commit('passItem', item)
				this.$store.commit('passDaibanItemShow', true)
				this.$store.commit('changenowpage', this.routerObj[item.businessType].nowpage);
				this.$store.commit('changetopmenu', topmenu)
			})

		},
		openpage1(item, index) {
      console.log(item)
			let topmenu;
			let modelData = JSON.parse(sessionStorage.getItem('modelDataJson'))
			let premodelData = JSON.parse(sessionStorage.getItem('premodelDataJson'))

			if ((typeof index) == 'number') {
				this.toDoToRead(item.id).then(res => {
					this.daibanItem.splice(index, 1)
					this.messageListCount--
					this.$set(this.messageItem, 'messageCount', this.messageListCount)
					this.readyibanList()
					if (this.messageListCount == 0) {
						this.daiban.splice(this.activeIndex, 1)
						this.activeIndex = -1;
						this.messageGroup = null
						this.groupListCount = this.daiban.length
					}
				}, err => {
				})
			}
			this.$store.state.menuName = this.routerObj1[item.businessType].topmenu;
			this.$store.state.pageName = this.routerObj1[item.businessType].name;
			for (let i in modelData) {
				if (modelData[i].name == this.routerObj1[item.businessType].topmenu) {
					topmenu = i
				}
			}
			let pageObj;
			for (let j of premodelData) {
				if (j.pageAddress == this.routerObj1[item.businessType].nowpage) {
					pageObj = j
				}
			}
			this.selUserOpernationByModelId(pageObj).then(res => {
        if(item.businessType == 't_sample_receive'){ //跳转到样品领取要选中的能力参数
          sessionStorage.setItem("selectedAblity", JSON.stringify(item))
        }
				sessionStorage.setItem("userOpernation", JSON.stringify(res.data))
				this.$store.commit('changenowpage', this.routerObj1[item.businessType].nowpage);
				this.$store.commit('changetopmenu', topmenu)
			}).catch(err => {
				this.$store.commit('changenowpage', this.routerObj1[item.businessType].nowpage);
				this.$store.commit('changetopmenu', topmenu)
			})

		},
		//根据菜单id获取操作项
		selUserOpernationByModelId(item) {
			return new Promise((resolve, reject) => {
				this.$http({
					apiUrl: '/selUserOpernationByModelId.htm',
					method: 'post',
					params: {
						moduleId: item.id
					},
					isJson: false
				}).then(res => {
					if (res.code === 0) {
						resolve(res)
					} else {
						reject('接口出错')
					}

				})
			})
		},
	}
}
</script>

<style lang="scss">
/*@import './daiban.css';*/

#todo-box {
	.el-tabs {
		.tabSign {
			position: relative;
		}
		.tabSign::after {
			content: '';
			display: table;
			position: absolute;
			height: 8px;
			width: 8px;
			background: red;
			border-radius: 50%;
			top: 0;
			right: -8px;
		}
		height: 100%;
		.el-tabs__header {
			height: 40px;
			.el-tabs__item {
				line-height: 40px;
			}
		}
		.el-tabs__content {
			height: calc(100% - 40px);
			.el-tab-pane {
				height: 100%;
				.shenpi-row {
					height: 100%;
				}
				.row-one {
					height: 50%;
					.daibanitem {
						float: left;
					}
				}
				.row-two {
					height: 50%;
				}
			}
		}
	}
}
</style>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style>
#todo-box div {
	line-height: normal;
}

#todo-box {
	position: absolute;
	color: #333;
	overflow: hidden;
	border: 1px solid #409eff;
	border-top: 0;
	width: 300px;
	right: -104px;
	top: 50px;
	background: #fff;
}

#todo-box.homeDaiBan {
	width: 320px;
	right: 10px;
	top: 78px;
	bottom:28px;
}


#todo-box.homeDaiBan {
	border: none;
	background: #fff;
}

#todo-box .daibai-header {
	text-align: left;
	height: 40px;
	line-height: 40px;
	width: 100%;
	padding-left: 8px;
	color: #246BB2;
	/*background: -webkit-linear-gradient(#88C0F9, #E9F3FF);*/
	/* Safari 5.1 - 6.0 */
	/*background: -o-linear-gradient(#88C0F9, #E9F3FF);*/
	/* Opera 11.1 - 12.0 */
	/*background: -moz-linear-gradient(#88C0F9, #E9F3FF);*/
	/* Firefox 3.6 - 15 */
	/*background: linear-gradient(#88C0F9, #E9F3FF);*/
	/* 标准的语法 */
	background:#88C0F9;
	color:#fff;
	font-size:15px
}

#todo-box .daibai-content {
	height: calc(100% - 40px);
	width: 100%;
}

#todo-box .row-one {
	padding-bottom: 10px;
}
#todo-box .row-two {
	padding-left: 13px;
}

#todo-box .row-one {
	/*height: calc(50% - 1px);*/
	height: 50%;
}
#todo-box .row-two{
	height: 50%;
}

#todo-box .to-line {
	width: 250px;
	height: 1px;
	background: #f7f7f7;
	margin: 0 auto;
}



#todo-box .to-title {
	width: 100%;
	padding: 10px 5px;
	text-align: left;
}

#todo-box .to-title:before {
	display: inline-block;
	content: "";
	width: 15px;
	height: 15px;
	background: #0F87FF;
	border-radius: 50%;
	vertical-align: middle;
	position: relative;
	left: -13px;
}



#todo-box .daibanitemgroup {
	width: 28%;
	/*margin-top: 7%;
	margin-left: 5%;*/
	margin-top: 2%;
	margin-left: 2%;
	border-radius: 3px;
	height: 70px;
}

#todo-box .active,#todo-box .isCurrentItem {
	/* box-shadow: 0 0 10px 0 #246BB3 inset; */
	/*border: 1px solid #409EFF;*/
	background:#f5f5f5;
}
.getLaboratoryShow .el-dialog {
		margin-top: 12vh;
		height: 75%;
	}

  .getLaboratoryShow .el-dialog .el-dialog__body {
    padding: 0 10px;
    height: calc(100% - 98px)
  }
</style>
